{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\hokky\\Anaconda3\\lib\\site-packages\\sklearn\\ensemble\\weight_boosting.py:29: DeprecationWarning: numpy.core.umath_tests is an internal NumPy module and should not be imported. It will be removed in a future NumPy release.\n",
      "  from numpy.core.umath_tests import inner1d\n"
     ]
    }
   ],
   "source": [
    "# 导入算法包以及数据集\n",
    "from sklearn import neighbors\n",
    "from sklearn import datasets\n",
    "from sklearn.ensemble import BaggingClassifier   # 封装好的begging\n",
    "from sklearn import tree\n",
    "from sklearn.model_selection import train_test_split\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "iris = datasets.load_iris()\n",
    "x_data = iris.data[:,:2]  #选取所有行，列只要0和1列，总有4个列。集成学习效果，故意选2个\n",
    "y_data = iris.target\n",
    "\n",
    "x_train,x_test,y_train,y_test = train_test_split(x_data, y_data)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "KNeighborsClassifier(algorithm='auto', leaf_size=30, metric='minkowski',\n",
       "           metric_params=None, n_jobs=1, n_neighbors=5, p=2,\n",
       "           weights='uniform')"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "knn = neighbors.KNeighborsClassifier()\n",
    "knn.fit(x_train, y_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "def plot(model):\n",
    "    # 获取数据值所在的范围\n",
    "    x_min, x_max = x_data[:, 0].min() - 1, x_data[:, 0].max() + 1\n",
    "    y_min, y_max = x_data[:, 1].min() - 1, x_data[:, 1].max() + 1\n",
    "\n",
    "    # 生成网格矩阵\n",
    "    xx, yy = np.meshgrid(np.arange(x_min, x_max, 0.02),\n",
    "                         np.arange(y_min, y_max, 0.02))\n",
    "\n",
    "    z = model.predict(np.c_[xx.ravel(), yy.ravel()])# ravel与flatten类似，多维数据转一维。flatten不会改变原始数据，ravel会改变原始数据\n",
    "    z = z.reshape(xx.shape)\n",
    "    # 等高线图\n",
    "    cs = plt.contourf(xx, yy, z)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "0.7368421052631579"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 画图\n",
    "plot(knn)\n",
    "# 样本散点图\n",
    "plt.scatter(x_data[:, 0], x_data[:, 1], c=y_data)\n",
    "plt.show()\n",
    "# 准确率\n",
    "knn.score(x_test, y_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "DecisionTreeClassifier(class_weight=None, criterion='gini', max_depth=None,\n",
       "            max_features=None, max_leaf_nodes=None,\n",
       "            min_impurity_decrease=0.0, min_impurity_split=None,\n",
       "            min_samples_leaf=1, min_samples_split=2,\n",
       "            min_weight_fraction_leaf=0.0, presort=False, random_state=None,\n",
       "            splitter='best')"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "dtree = tree.DecisionTreeClassifier()  # 决策树\n",
    "dtree.fit(x_train, y_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "0.7368421052631579"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 画图\n",
    "plot(dtree)\n",
    "# 样本散点图\n",
    "plt.scatter(x_data[:, 0], x_data[:, 1], c=y_data)\n",
    "plt.show()\n",
    "# 准确率\n",
    "dtree.score(x_test, y_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "0.7631578947368421"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# begging训练100个knn分类器，然后投票，高票当选，下同\n",
    "bagging_knn = BaggingClassifier(knn, n_estimators=100) # n_estimators有放回抽样次数\n",
    "# 输入数据建立模型\n",
    "bagging_knn.fit(x_train, y_train)\n",
    "plot(bagging_knn)\n",
    "# 样本散点图\n",
    "plt.scatter(x_data[:, 0], x_data[:, 1], c=y_data)\n",
    "plt.show()\n",
    "bagging_knn.score(x_test, y_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "0.7368421052631579"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "bagging_tree = BaggingClassifier(dtree, n_estimators=100)  \n",
    "# 输入数据建立模型\n",
    "bagging_tree.fit(x_train, y_train)\n",
    "plot(bagging_tree)\n",
    "# 样本散点图\n",
    "plt.scatter(x_data[:, 0], x_data[:, 1], c=y_data)\n",
    "plt.show()\n",
    "bagging_tree.score(x_test, y_test) # 对比之前的决策树，准确率有一定的提高"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 不太复杂情况下，集成学习使用后，效果可能提升，持平，或者下降。\n",
    "# 在复杂分类时，效果会好些一般。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "anaconda-cloud": {},
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
